批处理文件结构

在Pandat™软件中,用户定义的计算条件都自动保存在拓展名为pbfx的批处理文件中。 批处理文件使用XML(可扩展标记语言)语言编写。 熟悉XML会有助于用户理解批处理文件中保存的计算条件,但是用户不需要完全记住文件中的命令格式,因为Pandat™会在计算后自动生成批处理文件。 用户可以根据生成的文件作为模板轻松地修改相应的计算条件。下面是对批处理文件的格式和内容的一些解释:

批处理文件包含多个部分,“Header”部分以 <Header copyright="CompuTherm, LLC"> 开始,并以 </Header> 结束,提供有关版本的基本信息。 “Calculation”部分以<calculationname="Example#1"type="section">开始,以</calculation>结束,包含有关计算的所有详细信息,包括计算条件和输出结果设置。 关键字“type”定义了计算的类型。

Calculation”部分包含四个小节。 它们分别是:Databases, Units, Systemoutput

Databases: 数据库

这部分定义了计算中使用的数据库,包括拓展名为.tdb.pdb的热力学数据库、迁移率数据库或热物理性质数据库,以及不同模块中所需要的动力学参数数据库,例如PanEvolution模块所需的.kdb文件,PanSolidification 模块中的.sdb,以及 PanPhaseField 模块中的 .pfdb

在“file_name”字段中,如果只提供数据库名称,则数据库和批处理文件应位于同一文件夹中,否则应给出数据库所在的文件夹路径。 在下面的示例中,kdb 文件与批处理文件位于同一文件夹中,只给出了文件名, tdb 文件列出的为文件路径。

<databases>

<database type="tdb" file_name="C:\..\Pandat 2023 Example book\AlNi_Prep.tdb" />

<database type="kdb" file_name="Ni-14Al_Precipitation.kdb" />

</databases>

Units: 单位

Units部分定义了计算和模拟中使用的单位。 包括温度(T),压力(P),时间(time),长度(length)和成分(n)。 后面System(系统)中定义的值均与此处设置的单位相对应。

<units>

<unit name="T" value="C" />

<unit name="length" value="m" />

<unit name="n" value="x%" />

<unit name="time" value="hour" />

</units>

注意:如果在输出的表格中进行数学运算,则数学运算后的输出属性为国际标准(SI)单位,而不是单位部分设置的单位。 例如,此处“时间”单位选择为“小时”,但输出中的log10(time)值将以国际单位秒为时间单位进行计算。

System: 系统

System(系统)中包括四个小节: Components(组元); Phases(相); Points(点); and Conditions(条件);

Components 定义系统中的组元,对应于GUI界面中的选择组元。

<components>

<component name="Al" status="Selected" />

<component name="Mg" status="Selected" />

</components>

phases 定义系统中的相。 “*” 代表所有相, 相的状态有三种 “Entered” (输入相), “Suspended” (屏蔽相) and “Dormant” (休眠相)。这里定义的相与GUI界面设置中选择相(Select Phases)相对应。

<phases>

<phase name="*" status="Entered" />

<phase name="Fcc" status="Suspended" />

<phase name="Liquid" status="Dormant" />

</phases>

Points(点) 定义特定点的状态变量,例如温度、压力和成分。 这些状态点的单位在Units单元定义。 对于点计算,以及一些其他的计算,比如凝固,这里只需要定义一个点。 线计算需要两端的两个点,二维截面计算需要定义对应截面三个顶点对应的参数。

<points>

<point>

<statespace>

<T value="300" />

<P value="1" />

<n component="Al" value="0.5" />

<n component="Mg" value="0.5" />

</statespace>

</point>

</points>

Condition (条件) Pandat™中的一些高级功能在Condition中定义。例如相图模块 模块中的等值线计算,扩散模块, 组织演化模块 和 凝固模块 等热处理条件和凝固条件都在Condition单元中定义。下面示例为液相面投影计算中计算等温线的条件。

<condition>

<steps value="100" />

<contour name="isotherm_lines" property="T" step="0" interval="50">

<equilibrium_type value="" />

</contour>

</condition>

Output: 输出

输出单位中有两个小单位 Tables(表格) 和 Graphs(图形).

Tables 定义需要在表格中导出的性质。用户也可以同时输出多个表格。用户还可以将实验数据文件直接导入Pandat为表格,也可以直接将表格名定义为.dat 从而输出为.dat数据文件。

下例中第一个表格table source="Al-Mg_Exp.dat"为导入“Al-Mg_Exp.dat”数据文件,命名为 “exp”, 第二个表格是计算的 “Default” 表格,“column name” 定义了表格中的各种性质,如温度“T”,成分“x(*)”,相的名字“Phase_name”等。第三个表格名为Al-Mg_Calc.dat,带拓展名.dat, Pandat™除了在工作空间中生成这个表格文件,还将直接保存Al-Mg_Calc.dat文件在该工作目录下。

表格的类型 “type” 可以定义为“Default”, “Tie-line”, “Invariant”, “Invariant_Tieline”, “Contour” 和 “psd” (组织演化模块计算结果)等。 .

<tables>

<table source="Al-Mg_Exp.dat" name="exp" />

<table name="Default" source="Default" type="Default">

<column name="T" />

<column name="x(*)" />

<column name="phase_name" />

<column name="f(@*)" />

<column name="G" />

<column name="w(*)" />

</table>

<table name="Al-Mg_Calc.dat" source="Default" type="Default">

<column name="T" />

<column name="x(*)" />

<column name="phase_name" />

<column name="w(*)" />

</table>

<tables>

Graphs 定义图形中的设置。默认的图形为直角坐标图形,添加type = "triangle" 后将绘制三角坐标相图,如三元系等温截面。<graph name="AlMgZn_700K" type="triangle"> 。绘图类型(plot type)可以定义为“point”、“line”和“linepoint”,即在图形上的将数据显示为“符号”、“实线”或“线加符号”。默认的绘图类型为line(线)型。以下是Graph定义的两个典型示例。

例 1: Al-Mg二元相图

<graphs>

<graph name="2D_Al-Mg">

<plot table_name="Default" xaxis="x(Mg)" yaxis="T" />

<plot type="point" table_name="exp" xaxis="x(Mg)" yaxis="T" />

<plot table_name="tieline" xaxis="x(Mg)" yaxis="T" />

<plot table_name="invariant_tieline" xaxis="x(Mg)" yaxis="T" />

</graph>

</graphs>

例 2: 析出模拟后在图表中绘制析出相数密度、平均粒径和硬度。

<graphs>

<graph name="number density">

<plot table_name="185C_KWN" xaxis="log10(t)" yaxis="log10(nd(*))"/>

<plot type="point" table_name="nd_exp" xaxis="logt" yaxis="nd"/>

</graph>

<graph name="average size">

<plot table_name="185C_KWN" xaxis="log10(t)" yaxis="log10(s(*)*1e10)"/>

<plot type="point" table_name="size_exp" xaxis="logt" yaxis="size"/>

</graph>

<graph name="hardness">

<plot table_name="185C_KWN" xaxis="log10(t)" yaxis="hv"/>

<plot type="point" table_name="hv_exp" xaxis="logt" yaxis="hv"/>

</graph>

</graphs>